<?php namespace Common\Model;

use Hdphp\Model\Model;


class Goods extends Model{
//		商品数据库
	protected $table = "goods";


//自动验证	
	protected $validate = array(
		array('cate_cid','required','请选择分类',3,3),
		array('brand_bid','required','请选择品牌',3,3),
		array('gname','required','商品名称不能为空',3,3),
		array('gunit','required','请填写单位',3,3),
		array('gmall','required','商品价格不能为空',3,3),
		array('satlas','required','商品图册不能为空',3,3),
	);
	
	
//自动完成
	protected $auto = array(
		array('gtime','time','function',3,3),	
		array('gart','time','function',3,3),
		array('admin_user_admin_uid','admin_uid','method',3,3),
	);
	
	
	
	
	
	
	
//后台登录id   
	public function admin_uid(){
//		p($_SESSION['admin_uid']);
		return $_SESSION['admin_uid'];
	}
	
	
	
//添加数据
	public function store(){
		
//		p($_POST);/
		
//		自动验证
		if(!$this->create()) return FALSE;
//*************************************//////**********
//			获得分类的id
			$cid=$_POST['cate_cid'];
//			实例化分类表
			$cateModel = new \Common\Model\Cate;
//			在分类表里面找到    商品表提交的分类的id的那条数据数据  里面的type_taid
			$type_taid = $cateModel->where("cid={$cid}")->pluck('type_taid');
//			p($type_taid);
				
//				data['type_taid']这是框架里面的一个方法   在填[字段] 就会把他压进去
			$this->data['type_taid'] = $type_taid;



//			获得添加商品的id  并添加到商品表
			$gid = $this->add();
			

//*************************添加商品属性表************************

			

		$attr=$_POST['attr'];
//	p($attr);exit;
		
//		实例化商品属性表
		$dityModel = new \Common\Model\Dity;
//		循环提交上来的属性
		foreach ($attr as $k =>$v) {
			
//			p($k);
//			把选的颜色（白色，红色）添加到商品属性表里面
			$dityModel['dattr']=$v;
//			把类型属性的 id存入 商品属性表里面 因为他们有关系
			$dityModel['attr_thid']=$k;
//			把商品表的id也存到商品属性表里面  他们也有关系
			$dityModel['goods_gid']=$gid;
		}
		
		
		$dityModel->add();

//**********添加规格*****************************
		
		$spec=$_POST['spec'];
		
//		p($spec);
//		循环提交上来的规格
		foreach ($spec as $k => $v) {
//			p($v);
//				因为是多维数组所以要循环
			foreach ($v['thattr'] as $kk => $vv) {
//				p($kk);

//				因为他们有关联 所以要把商品id也存进去
				$dityModel['goods_gid']=$gid;
//				获得的是 规格的id   也就是类型属性id
				$dityModel['attr_thid']=$k;
//				获得的是选择的颜色  比如（白色，黑色）
				$dityModel['dattr']=$vv;
//				p($vv);

//				获得的是附加价格
//				p($kk);  $v就是分组的id   然后就是分组里面的price（也就是材质，颜色）$kk就是他下面对应的数组id    因为循环一次thattr和price下面的id一样所以用的$kk 这样就可以 找到他们俩id一样的值了
				$dityModel['dadd'] = $v['price'][$kk];
//				循环一次添加一次
				$dityModel->add();
			}	
		}
//		exit;

//***************************商品详情表****************
//		实例化商品详情表
		$sdetaModel = new \Common\Model\Sdeta;
//			商品详情表的自动验证
		if(!$sdetaModel->create()){
//			把商品详情里面的自动验证错误信息 赋给  商品表的错误信息里面  这样商品表就可以用了
			$this->error = $sdetaModel->getError();
			
//			return false;
		}
		
//		把商品的id  赋给商品详情表里面的goods_gid里面    因为他两个是关联的
//		  添加到商品详情表
			$sdetaModel['goods_gid'] = $gid;
			
			$sdetaModel->add();

		return true;
		
	}
	
	
	
	
	

	

//编辑商品数据
	
	public function edits(){
		
//		判断提交的数据能不能通过自动验证
		if(!$this->create()) return FALSE;
//		
		$gid = Q('get.gid',0,'intval');
		




//			获得添加商品的id  并添加到商品表
			
		
		
		
//-----------------------------------------商品属性表-----------------------------			
			
//			实例化商品属性表
			$dityModel = new \Common\Model\Dity;
//			
			$dityModel->where("goods_gid={$gid}")->delete();
//p($_POST);
//*****添加属性********
			if(Q('post.attr') != null){
//			获得商品属性的值
			$attr = $_POST['attr'];
//			循环
			foreach ($attr as $k => $v) {
//				p($k);  赋值        赋到商品属性表里面 
				$dityModel['attr_thid']=$k;
//						值
				$dityModel['dattr']=$v;
				
				$dityModel['goods_gid'] = $_POST['gid'];
//				存的是和商品表的关联id   添加到商品属性表
				$dityModel->add();
			}
//			
			
//*******规格*********	
			$spec=$_POST['spec'];
		
//		p($spec);
//		循环提交上来的规格
		foreach ($spec as $k => $v) {
//			p($v);
//				因为是多维数组所以要循环
			foreach ($v['thattr'] as $kk => $vv) {
//				p($vv);

//				因为他们有关联 所以要把商品id也存进去
				$dityModel['goods_gid']=$gid;
//				获得的是 规格的id   也就是类型属性id
				$dityModel['attr_thid']=$k;
//				获得的是选择的颜色  比如（白色，黑色）
				$dityModel['dattr']=$vv;
//				p($vv);

//				获得的是附加价格
//				p($kk);  $v就是分组的id   然后就是分组里面的price（也就是材质，颜色）$kk就是他下面对应的数组id    因为循环一次thattr和price下面的id一样所以用的$kk 这样就可以 找到他们俩id一样的值了
				$dityModel['dadd'] = $v['dadd'][$kk];
//				循环一次添加一次
				$dityModel->add();
			}	
		}
			
		
//p($_POST);			
			
			$sdetaModel = new \Common\Model\Sdeta;
//			删除数据
			$sdetaModel->where("goods_gid={$gid}")->delete();
//			
			$sdetaModel['satlas'] = $_POST['satlas'];
//			
			$sdetaModel['sdeta'] = $_POST['sdeta'];
//			
			$sdetaModel['safter'] = $_POST['safter'];
//			
			$sdetaModel['goods_gid'] = $gid;
			
			$sdetaModel->add();


//-------------------------------------商表----------------------------------------
//			删除商品表    //找到和商品id所对应的数据 并删除
				
//		获得分类的id
			$cid=$_POST['cate_cid'];
//			实例化分类表
			$cateModel = new \Common\Model\Cate;
//			在分类表里面找到    商品表提交的分类的id的那条数据数据  里面的type_taid
			$type_taid = $cateModel->where("cid={$cid}")->pluck('type_taid');
//			p($type_taid);
				
//				data['type_taid']这是框架里面的一个方法   在填[字段] 就会把他压进去
			$this->data['type_taid'] = $type_taid;

//			获得添加商品的id  并添加到商品表
		$this->where("gid={$gid}")->delete();
//			再添加新提交上来的数据
//		$this->add();
		$this->add();

		return true;	
		
		
		}

	}
	
}




